package org.locker.domain.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import org.locker.domain.Position;
import org.locker.common.mybatis.core.domain.BaseEntity;
import org.locker.common.core.validate.*;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;

/**
 * 场地信息业务对象 lk_position
 *
 * @author winnie
 * @date 2023-10-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Position.class, reverseConvertGenerate = false)
public class PositionBo extends BaseEntity {

    /**
     * 场地ID
     */
    @NotNull(message = "场地ID不能为空", groups = { EditGroup.class })
    private Long positionId;

    /**
     * 场地名称
     */
    @NotBlank(message = "场地名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 场地描述
     */
    @NotBlank(message = "场地描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String describe;

    /**
     * 场地地址
     */
    @NotBlank(message = "场地地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String location;

    /**
     * 归属地code
     */
    private String belongingPlace;
    /**
     * 归属地字符串
     */
    private String belongingPlaceStr;


    /**
     * 场地代理商
     */
    @NotNull(message = "代理商不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long agentUserId;


    /**
     * 代理商分润比例
     */
    @NotNull(message = "代理商分润比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal agentRate;

    /**
     * 场地代管理员
     */
    @NotNull(message = "管理员不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long manageUserId;

    /**
     * 管理员分润比例
     */
    @NotNull(message = "管理员分润比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal manageRate;

    /**
     * 财务管理员
     */
    private Long financeUserId;

    /**
     * 设备维护人员
     */
    private Long deviceUserId;

    /**
     * 负责人
     */
//    @NotBlank(message = "负责人不能为空", groups = { AddGroup.class, EditGroup.class })
//    private String username;

    /**
     * 负责人电话
     */
//    @NotBlank(message = "负责人电话不能为空", groups = { AddGroup.class, EditGroup.class })
//    private String phone;

    /**
     * 经度
     */
    @NotNull(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @NotNull(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal latitude;

    /**
     * 营业时间
     */
    @NotBlank(message = "营业时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workTime;

    /**
     * 场地二维码地址
     */
//    @NotBlank(message = "场地二维码地址不能为空", groups = { AddGroup.class, EditGroup.class })
//    private String qrCode;

    /**
     * 设备状态：online 营业,wait 待营业 , discard 已废弃
     */
    @NotBlank(message = "设备状态：online 营业,wait 待营业 , discard 已废弃不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * openid
     */
    private String openid;


    /**
     * 是否开启分账：open 开启，close关闭
     */
    private String openSpilt;

    /**
     * 分账比例
     */
    private BigDecimal spiltRate;


    /**
     * 订单统计单价
     */
    private BigDecimal statisticsPrice;
    private Integer isShowMp;

    private String bindMpAppId;
}
